Python使用uwsgi部署Flask应用 | 您所在的位置:网站首页 › 启动方式 uwsgi › Python使用uwsgi部署Flask应用 |
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动 前言众所周知,flask应用写好了之后可以直接跑。但是,but,有一个非常重要且不可忽视,一旦忽视就会出现十分严重后果的问题,那么,到底是什么问题呢。 虽然确实flask app可以不通过代理而直接使用app.run(host="0.0.0.0")直接在生产环境运行。但是不知道小伙伴们是否注意到,在通过该方法运行之后日志终端会输出一条warning警告,告诉我们不建议通过该方法直接在生产环境部署应用。这是因为app.run方法是使用flask内置的wsgi服务器进行程序运行的,该服务器不适用于生产 ,也不能很好的进行扩展。那么,该如何正确的将自己的应用部署在生产环境上呢?这里我将推荐大家使用uwsgi+nginx进行部署。 准备工作 下载uwsgipip install uwsgi 准备好自己的应用这里我以一个最小化可行性flask应用为例,当请求首页时,会返回‘hello, world!’字样 # app.py from flask import Flask app = Flask(__name__="__main__") @app.route("/") def index(): return 'hello, world!' app.run() 正式部署uwsgi可通过命令行命令直接部署,但如果配置项较多的情况下,也可通过配置文件进行部署。 命令行直接部署 uwsgi --http :8000 --wsgi-file app.py --callable app最简化部署只需要3个参数,http参数配置flask应用要运行的地址:,wsgi-file参数配置flask应用(Flask对象)所在的文件,即上文代码所在的文件,callable参数配置Flask对象的名称,在上文中的代码即为app。 运行上述命令后,即可在8000端口访问到我们的应用。 通过配置文件部署配置文件其实也只不过是把配置参数放到文件中去而已 # uwsgi.ini [uwsgi] http = 127.0.0.1:5000 wsgi-file = app.py callable = app准备好配置文件后,命令行运行uwsgi --ini uwsgi.ini即可 结语 重启uwsgiuwsgi --reload uwsgi.pid 停止uwsgiuwsgi --stop uwsgi.pid 更多配置参数uwsgi-docs-zh.readthedocs.io/zh_CN/lates… 结语中的结语flask应用除了可以用uwsgi直接部署外,一般还会加个nginx搞个代理配置,这个就下一回说吧。 |
CopyRight 2018-2019 实验室设备网 版权所有 |